package com.ai.plug.core.parser.tool.des;

import com.ai.plug.core.annotation.McpTool;
import org.springframework.util.StringUtils;

import java.lang.reflect.Method;

/**
 * @author han
 * @time 2025/6/30 3:44
 */

public class McpToolDesParser extends AbstractDesParser{
    /**
     * 解析的是工具名和优先级
     */

    /**
     * 解析MCP工具的描述信息 通过获取注解及其相关信息得到
     *
     * @param method 工具方法
     * @param toolClass 工具类
     * @return 工具描述字符串，如果未找到注解或描述为空则返回null
     */
    @Override
    public String doDesParse(Method method, Class<?> toolClass) {
        // 获取方法上的McpTool注解
        McpTool toolAnnotation = method.getAnnotation(McpTool.class);

        // 如果方法上没有McpTool注解，返回null
        if (toolAnnotation == null) {
            return null;
        }

        // 获取注解中定义的description属性值
        String des = toolAnnotation.description();
        
        // 如果description不为空（包含文本），则返回该描述
        if (StringUtils.hasText(des)) {
            return des;
        }
        
        // 如果description为空，返回null
        return null;
    }
}
